package com.ruoyi.eduManage.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 班级信息对象 edu_class
 * 
 * @author ruoyi
 * @date 2025-10-24
 */
public class EduClass extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 班级ID */
    private Long classId;

    /** 班级编码（标识） */
    @Excel(name = "班级编码", readConverterExp = "标=识")
    private String classCode;

    /** 班级名称 */
    @Excel(name = "班级名称")
    private String className;

    /** 班级类别（如：剑桥英语班、新概念英语班等） */
    @Excel(name = "班级类别", readConverterExp = "如=：剑桥英语班、新概念英语班等")
    private String classCategory;

    /** 班主任教师ID（一对一关系） */
    @Excel(name = "班主任教师", readConverterExp = "一=对一关系")
    private String teacherNo;

    /** 学生人数 */
    @Excel(name = "学生人数")
    private Long studentCount;

    /** 开班日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开班日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结业日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结业日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 是否关班（0正常 1已关班） */
    @Excel(name = "是否关班", readConverterExp = "0=正常,1=已关班")
    private String isClosed;

    /** 逻辑删除标识（0正常 1删除） */
    private String delFlag;

    public void setClassId(Long classId) 
    {
        this.classId = classId;
    }

    public Long getClassId() 
    {
        return classId;
    }

    public void setClassCode(String classCode) 
    {
        this.classCode = classCode;
    }

    public String getClassCode() 
    {
        return classCode;
    }

    public void setClassName(String className) 
    {
        this.className = className;
    }

    public String getClassName() 
    {
        return className;
    }

    public void setClassCategory(String classCategory) 
    {
        this.classCategory = classCategory;
    }

    public String getClassCategory() 
    {
        return classCategory;
    }

    public void setTeacherNo(String teacherNo)
    {
        this.teacherNo = teacherNo;
    }

    public String getTeacherNo()
    {
        return teacherNo;
    }

    public void setStudentCount(Long studentCount) 
    {
        this.studentCount = studentCount;
    }

    public Long getStudentCount() 
    {
        return studentCount;
    }

    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }

    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }

    public void setIsClosed(String isClosed) 
    {
        this.isClosed = isClosed;
    }

    public String getIsClosed() 
    {
        return isClosed;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("classId", getClassId())
            .append("classCode", getClassCode())
            .append("className", getClassName())
            .append("classCategory", getClassCategory())
            .append("teacherNo", getTeacherNo())
            .append("studentCount", getStudentCount())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("isClosed", getIsClosed())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
